 /*
 * IndicadoresdeVerificacion.java
 *
 * Created on 7/11/2008, 10:48:27 PM
 */
package investigaciones_itm.Administracion;

import com.sun.data.provider.RowKey;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.webui.jsf.component.Body;
import com.sun.webui.jsf.component.Button;
import com.sun.webui.jsf.component.Form;
import com.sun.webui.jsf.component.Head;
import com.sun.webui.jsf.component.Html;
import com.sun.webui.jsf.component.Label;
import com.sun.webui.jsf.component.Link;
import com.sun.webui.jsf.component.Page;
import com.sun.webui.jsf.component.PanelLayout;
import com.sun.webui.jsf.component.RadioButtonGroup;
import com.sun.webui.jsf.component.StaticText;
import com.sun.webui.jsf.component.Tab;
import com.sun.webui.jsf.component.TabSet;
import com.sun.webui.jsf.component.Table;
import com.sun.webui.jsf.component.TableColumn;
import com.sun.webui.jsf.component.TableRowGroup;
import com.sun.webui.jsf.component.TextField;
import com.sun.webui.jsf.model.SingleSelectOptionsList;
import javax.faces.FacesException;
import investigaciones_itm.ApplicationBean1;
import javax.faces.component.html.HtmlMessages;
import javax.faces.component.html.HtmlPanelGrid;
import javax.faces.component.html.HtmlSelectBooleanCheckbox;
import javax.faces.component.html.HtmlSelectOneListbox;
import itm.vo.administracion.IndicadoresVO;
import itm.base.ListaIndicadoresProyectos;
import itm.base.ListaIndicadoresProductos;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import investigaciones_itm.RequestBean1;
import investigaciones_itm.SessionBean1;
import javax.faces.event.ValueChangeEvent;
import itm.bo.administracion.IndicadoresBO;
import itm.exception.ControlException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.component.UISelectItems;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 *
 * @author JULI
 */
public class IndicadoresdeVerificacion extends AbstractPageBean {

    private boolean renderComponentes;
    private HttpSession session;
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
        radioButtonGroup1DefaultOptions.setOptions(new com.sun.webui.jsf.model.Option[]{new com.sun.webui.jsf.model.Option("tipoProyecto", "TIPO DE PROYECTO"), new com.sun.webui.jsf.model.Option("tipoProducto", "TIPO DE PRODUCTOS")});
    }
    private Page page1 = new Page();

    public Page getPage1() {
        return page1;
    }

    public void setPage1(Page p) {
        this.page1 = p;
    }
    private Html html1 = new Html();

    public Html getHtml1() {
        return html1;
    }

    public void setHtml1(Html h) {
        this.html1 = h;
    }
    private Head head1 = new Head();

    public Head getHead1() {
        return head1;
    }

    public void setHead1(Head h) {
        this.head1 = h;
    }
    private Link link1 = new Link();

    public Link getLink1() {
        return link1;
    }

    public void setLink1(Link l) {
        this.link1 = l;
    }
    private Body body1 = new Body();

    public Body getBody1() {
        return body1;
    }

    public void setBody1(Body b) {
        this.body1 = b;
    }
    private Form form1 = new Form();

    public Form getForm1() {
        return form1;
    }

    public void setForm1(Form f) {
        this.form1 = f;
    }
    private TabSet tabSet1 = new TabSet();

    public TabSet getTabSet1() {
        return tabSet1;
    }

    public void setTabSet1(TabSet ts) {
        this.tabSet1 = ts;
    }
    private Tab tab1 = new Tab();

    public Tab getTab1() {
        return tab1;
    }

    public void setTab1(Tab t) {
        this.tab1 = t;
    }
    private PanelLayout layoutPanel1 = new PanelLayout();

    public PanelLayout getLayoutPanel1() {
        return layoutPanel1;
    }

    public void setLayoutPanel1(PanelLayout pl) {
        this.layoutPanel1 = pl;
    }
    private Button buttonCrear1 = new Button();

    public Button getButtonCrear1() {
        return buttonCrear1;
    }

    public void setButtonCrear1(Button b) {
        this.buttonCrear1 = b;
    }
    private Label label1 = new Label();

    public Label getLabel1() {
        return label1;
    }

    public void setLabel1(Label l) {
        this.label1 = l;
    }
    private Label label2 = new Label();

    public Label getLabel2() {
        return label2;
    }

    public void setLabel2(Label l) {
        this.label2 = l;
    }
    private Button buttonConsuIndicadores1 = new Button();

    public Button getButtonConsuIndicadores1() {
        return buttonConsuIndicadores1;
    }

    public void setButtonConsuIndicadores1(Button b) {
        this.buttonConsuIndicadores1 = b;
    }
    private TextField areaPeso1 = new TextField();

    public TextField getAreaPeso1() {
        return areaPeso1;
    }

    public void setAreaPeso1(TextField tf) {
        this.areaPeso1 = tf;
    }
    private TextField areaItem1 = new TextField();

    public TextField getAreaItem1() {
        return areaItem1;
    }

    public void setAreaItem1(TextField tf) {
        this.areaItem1 = tf;
    }
    private HtmlSelectBooleanCheckbox checkbox1 = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckbox1() {
        return checkbox1;
    }

    public void setCheckbox1(HtmlSelectBooleanCheckbox hsbc) {
        this.checkbox1 = hsbc;
    }
    private RadioButtonGroup radioButtonGroup1 = new RadioButtonGroup();

    public RadioButtonGroup getRadioButtonGroup1() {
        return radioButtonGroup1;
    }

    public void setRadioButtonGroup1(RadioButtonGroup rbg) {
        this.radioButtonGroup1 = rbg;
    }
    private SingleSelectOptionsList radioButtonGroup1DefaultOptions = new SingleSelectOptionsList();

    public SingleSelectOptionsList getRadioButtonGroup1DefaultOptions() {
        return radioButtonGroup1DefaultOptions;
    }

    public void setRadioButtonGroup1DefaultOptions(SingleSelectOptionsList ssol) {
        this.radioButtonGroup1DefaultOptions = ssol;
    }
    private Label label3 = new Label();

    public Label getLabel3() {
        return label3;
    }

    public void setLabel3(Label l) {
        this.label3 = l;
    }

    public boolean isRenderComponentes() {
        return renderComponentes;
    }

    public void setRenderComponentes(boolean renderComponentes) {
        this.renderComponentes = renderComponentes;
    }

    public HttpSession getSession() {
        return (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
    }

    public void setSession(HttpSession session) {
        this.session = session;
    }
    private HtmlSelectOneListbox listboxCriterio1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxCriterio1() {

        listboxCriterio1 = new HtmlSelectOneListbox();
        String idCriterio;
        String nombreCriterio;

        IndicadoresBO indicadoresBO = new IndicadoresBO();
        List<IndicadoresVO> listaIndicador = new ArrayList<IndicadoresVO>();
        List collection = new ArrayList();
        collection.add(new SelectItem("0", "TODOS"));
        try {
            listaIndicador = indicadoresBO.listarIndicadores();

            for (int i = 0; i < listaIndicador.size(); i++) {
                idCriterio = listaIndicador.get(i).getId_criterio();
                nombreCriterio = listaIndicador.get(i).getNombreCriterio();

                collection.add(new SelectItem(idCriterio, nombreCriterio));
            } // end for
            UISelectItems listaMenu = new UISelectItems();
            listaMenu.setValue(collection);
            listboxCriterio1.getChildren().add(listaMenu);
        } catch (Exception e) {
            e.getStackTrace();
        }

        return listboxCriterio1;
    }

    public void setListboxCriterio1(HtmlSelectOneListbox hsol) {
        this.listboxCriterio1 = hsol;
    }
    private Label label4 = new Label();

    public Label getLabel4() {
        return label4;
    }

    public void setLabel4(Label l) {
        this.label4 = l;
    }
    private HtmlSelectOneListbox listboxTipoProducto1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxTipoProducto1() {

        listboxTipoProducto1 = new HtmlSelectOneListbox();
        String idTipoProducto;
        String nombreTipoProducto;

        IndicadoresBO indicadoresBO = new IndicadoresBO();
        List<IndicadoresVO> listatipoProducto = new ArrayList<IndicadoresVO>();
        List collection = new ArrayList();
        try {
            listatipoProducto = indicadoresBO.listartipoProducto();

            for (int i = 0; i < listatipoProducto.size(); i++) {
                idTipoProducto = listatipoProducto.get(i).getIdTipoProducto();
                nombreTipoProducto = listatipoProducto.get(i).getNombreTipoProducto();

                collection.add(new SelectItem(idTipoProducto, nombreTipoProducto));
            } // end for
            UISelectItems listaMenu = new UISelectItems();
            listaMenu.setValue(collection);
            listboxTipoProducto1.getChildren().add(listaMenu);
        } catch (Exception e) {
            e.getStackTrace();
        }


        return listboxTipoProducto1;
    }

    public void setListboxTipoProducto1(HtmlSelectOneListbox hsol) {
        this.listboxTipoProducto1 = hsol;
    }
    private HtmlSelectOneListbox listboxTipoProyecto1 = new HtmlSelectOneListbox();

    public HtmlSelectOneListbox getListboxTipoProyecto1() {

        listboxTipoProyecto1 = new HtmlSelectOneListbox();
        String idTipoProyecto;
        String nombreTipoProyecto;

        IndicadoresBO indicadoresBO = new IndicadoresBO();
        List<IndicadoresVO> listatipoProyecto = new ArrayList<IndicadoresVO>();
        List collection = new ArrayList();
        try {
            listatipoProyecto = indicadoresBO.listartipoProyecto();

            for (int i = 0; i < listatipoProyecto.size(); i++) {
                idTipoProyecto = listatipoProyecto.get(i).getIdtipoProyecto();
                nombreTipoProyecto = listatipoProyecto.get(i).getNombreTipoProyecto();

                collection.add(new SelectItem(idTipoProyecto, nombreTipoProyecto));
            } // end for
            UISelectItems listaMenu = new UISelectItems();
            listaMenu.setValue(collection);
            listboxTipoProyecto1.getChildren().add(listaMenu);
        } catch (Exception e) {
            e.getStackTrace();
        }

        return listboxTipoProyecto1;
    }

    public void setListboxTipoProyecto1(HtmlSelectOneListbox hsol) {
        this.listboxTipoProyecto1 = hsol;
    }
    private HtmlPanelGrid gridPanelTabla = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanelTabla() {
        return gridPanelTabla;
    }

    public void setGridPanelTabla(HtmlPanelGrid hpg) {
        this.gridPanelTabla = hpg;
    }
    private Table tableITEM = new Table();

    public Table getTableITEM() {
        return tableITEM;
    }

    public void setTableITEM(Table t) {
        this.tableITEM = t;
    }
    private TableRowGroup tableRowGroup1 = new TableRowGroup();

    public TableRowGroup getTableRowGroup1() {
        return tableRowGroup1;
    }

    public void setTableRowGroup1(TableRowGroup trg) {
        this.tableRowGroup1 = trg;
    }
    private TableColumn tableColumn4 = new TableColumn();

    public TableColumn getTableColumn4() {
        return tableColumn4;
    }

    public void setTableColumn4(TableColumn tc) {
        this.tableColumn4 = tc;
    }
    private StaticText staticTextEliproyec = new StaticText();

    public StaticText getStaticTextEliproyec() {
        return staticTextEliproyec;
    }

    public void setStaticTextEliproyec(StaticText st) {
        this.staticTextEliproyec = st;
    }
    private TableColumn tableColumn5 = new TableColumn();

    public TableColumn getTableColumn5() {
        return tableColumn5;
    }

    public void setTableColumn5(TableColumn tc) {
        this.tableColumn5 = tc;
    }
    private StaticText staticText5 = new StaticText();

    public StaticText getStaticText5() {
        return staticText5;
    }

    public void setStaticText5(StaticText st) {
        this.staticText5 = st;
    }
    private TableColumn tableColumn7 = new TableColumn();

    public TableColumn getTableColumn7() {
        return tableColumn7;
    }

    public void setTableColumn7(TableColumn tc) {
        this.tableColumn7 = tc;
    }
    private StaticText staticText7 = new StaticText();

    public StaticText getStaticText7() {
        return staticText7;
    }

    public void setStaticText7(StaticText st) {
        this.staticText7 = st;
    }
    private TableColumn tableColumn8 = new TableColumn();

    public TableColumn getTableColumn8() {
        return tableColumn8;
    }

    public void setTableColumn8(TableColumn tc) {
        this.tableColumn8 = tc;
    }
    private StaticText staticText8 = new StaticText();

    public StaticText getStaticText8() {
        return staticText8;
    }

    public void setStaticText8(StaticText st) {
        this.staticText8 = st;
    }
    private TableColumn tableColumn9 = new TableColumn();

    public TableColumn getTableColumn9() {
        return tableColumn9;
    }

    public void setTableColumn9(TableColumn tc) {
        this.tableColumn9 = tc;
    }
    private StaticText staticText9 = new StaticText();

    public StaticText getStaticText9() {
        return staticText9;
    }

    public void setStaticText9(StaticText st) {
        this.staticText9 = st;
    }
    private StaticText staticTextIdProyecto = new StaticText();

    public IndicadoresBO getIndicadoresBO() {
        return indicadoresBO;
    }

    public void setIndicadoresBO(IndicadoresBO indicadoresBO) {
        this.indicadoresBO = indicadoresBO;
    }

    public StaticText getStaticTextIdProyecto() {
        return staticTextIdProyecto;
    }

    public void setStaticTextIdProyecto(StaticText staticTextIdProyecto) {
        this.staticTextIdProyecto = staticTextIdProyecto;
    }
    private StaticText staticTextIdProducto = new StaticText();

    public StaticText getStaticTextIdProducto() {
        return staticTextIdProducto;
    }

    public void setStaticTextIdProducto(StaticText staticTextIdProducto) {
        this.staticTextIdProducto = staticTextIdProducto;
    }
    private TableRowGroup tableRowGroup2 = new TableRowGroup();

    public TableRowGroup getTableRowGroup2() {
        return tableRowGroup2;
    }

    public void setTableRowGroup2(TableRowGroup trg) {
        this.tableRowGroup2 = trg;
    }
    private TableColumn tableColumn1 = new TableColumn();

    public TableColumn getTableColumn1() {
        return tableColumn1;
    }

    public void setTableColumn1(TableColumn tc) {
        this.tableColumn1 = tc;
    }
    private StaticText staticTextElimiProdu = new StaticText();

    public StaticText getStaticTextElimiProdu() {
        return staticTextElimiProdu;
    }

    public void setStaticTextElimiProdu(StaticText st) {
        this.staticTextElimiProdu = st;
    }
    private TableColumn tableColumn2 = new TableColumn();

    public TableColumn getTableColumn2() {
        return tableColumn2;
    }

    public void setTableColumn2(TableColumn tc) {
        this.tableColumn2 = tc;
    }
    private StaticText staticText2 = new StaticText();

    public StaticText getStaticText2() {
        return staticText2;
    }

    public void setStaticText2(StaticText st) {
        this.staticText2 = st;
    }
    private TableColumn tableColumn3 = new TableColumn();

    public TableColumn getTableColumn3() {
        return tableColumn3;
    }

    public void setTableColumn3(TableColumn tc) {
        this.tableColumn3 = tc;
    }
    private StaticText staticText3 = new StaticText();

    public StaticText getStaticText3() {
        return staticText3;
    }

    public void setStaticText3(StaticText st) {
        this.staticText3 = st;
    }
    private TableColumn tableColumn13 = new TableColumn();

    public TableColumn getTableColumn13() {
        return tableColumn13;
    }

    public void setTableColumn13(TableColumn tc) {
        this.tableColumn13 = tc;
    }
    private StaticText staticText13 = new StaticText();

    public StaticText getStaticText13() {
        return staticText13;
    }

    public void setStaticText13(StaticText st) {
        this.staticText13 = st;
    }
    private TableColumn tableColumn14 = new TableColumn();

    public TableColumn getTableColumn14() {
        return tableColumn14;
    }

    public void setTableColumn14(TableColumn tc) {
        this.tableColumn14 = tc;
    }
    private StaticText staticText14 = new StaticText();

    public StaticText getStaticText14() {
        return staticText14;
    }

    public void setStaticText14(StaticText st) {
        this.staticText14 = st;
    }
    private TableColumn tableColumn6 = new TableColumn();

    public TableColumn getTableColumn6() {
        return tableColumn6;
    }

    public void setTableColumn6(TableColumn tc) {
        this.tableColumn6 = tc;
    }
    private TableColumn tableColumn10 = new TableColumn();

    public TableColumn getTableColumn10() {
        return tableColumn10;
    }

    public void setTableColumn10(TableColumn tc) {
        this.tableColumn10 = tc;
    }
    private Button buttonEliminarProyec = new Button();

    public Button getButtonEliminarProyec() {
        return buttonEliminarProyec;
    }

    public void setButtonEliminarProyec(Button b) {
        this.buttonEliminarProyec = b;
    }
    private Button buttonEliProducto = new Button();

    public Button getButtonEliProducto() {
        return buttonEliProducto;
    }

    public void setButtonEliProducto(Button b) {
        this.buttonEliProducto = b;
    }
    private Button buttonModifiTipoProyecto = new Button();

    public Button getButtonModifiTipoProyecto() {
        return buttonModifiTipoProyecto;
    }

    public void setButtonModifiTipoProyecto(Button b) {
        this.buttonModifiTipoProyecto = b;
    }
    private Button buttonModificarTipoProducto = new Button();

    public Button getButtonModificarTipoProducto() {
        return buttonModificarTipoProducto;
    }

    public void setButtonModificarTipoProducto(Button b) {
        this.buttonModificarTipoProducto = b;
    }
    private TableColumn tableColumn11 = new TableColumn();

    public TableColumn getTableColumn11() {
        return tableColumn11;
    }

    public void setTableColumn11(TableColumn tc) {
        this.tableColumn11 = tc;
    }
    private StaticText staticText1 = new StaticText();

    public StaticText getStaticText1() {
        return staticText1;
    }

    public void setStaticText1(StaticText st) {
        this.staticText1 = st;
    }
    private TableColumn tableColumn12 = new TableColumn();

    public TableColumn getTableColumn12() {
        return tableColumn12;
    }

    public void setTableColumn12(TableColumn tc) {
        this.tableColumn12 = tc;
    }
    private StaticText staticText4 = new StaticText();

    public StaticText getStaticText4() {
        return staticText4;
    }

    public void setStaticText4(StaticText st) {
        this.staticText4 = st;
    }
    private Button buttonVolver = new Button();

    public Button getButtonVolver() {
        return buttonVolver;
    }

    public void setButtonVolver(Button b) {
        this.buttonVolver = b;
    }
    private HtmlPanelGrid gridPanel2 = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanel2() {
        return gridPanel2;
    }

    public void setGridPanel2(HtmlPanelGrid hpg) {
        this.gridPanel2 = hpg;
    }
    private HtmlPanelGrid gridPanelPrincipal = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanelPrincipal() {
        return gridPanelPrincipal;
    }

    public void setGridPanelPrincipal(HtmlPanelGrid hpg) {
        this.gridPanelPrincipal = hpg;
    }
    private HtmlMessages messageList2 = new HtmlMessages();

    public HtmlMessages getMessageList2() {
        return messageList2;
    }

    public void setMessageList2(HtmlMessages hm) {
        this.messageList2 = hm;
    }
    private HtmlPanelGrid gridPanelInicial = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanelInicial() {
        return gridPanelInicial;
    }

    public void setGridPanelInicial(HtmlPanelGrid hpg) {
        this.gridPanelInicial = hpg;
    }
    private HtmlPanelGrid gridPanel1 = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanel1() {
        return gridPanel1;
    }

    public void setGridPanel1(HtmlPanelGrid hpg) {
        this.gridPanel1 = hpg;
    }
    private HtmlPanelGrid gridPanel3 = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanel3() {
        return gridPanel3;
    }

    public void setGridPanel3(HtmlPanelGrid hpg) {
        this.gridPanel3 = hpg;
    }
    private HtmlPanelGrid gridPanel4 = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanel4() {
        return gridPanel4;
    }

    public void setGridPanel4(HtmlPanelGrid hpg) {
        this.gridPanel4 = hpg;
    }
    private HtmlPanelGrid gridPanelBotone = new HtmlPanelGrid();

    public HtmlPanelGrid getGridPanelBotone() {
        return gridPanelBotone;
    }

    public void setGridPanelBotone(HtmlPanelGrid hpg) {
        this.gridPanelBotone = hpg;
    }

    // </editor-fold>
    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public IndicadoresdeVerificacion() {
        if (this.getSession().getAttribute("boolComponentes") != null) {
            this.setRenderComponentes((Boolean) this.getSession().getAttribute("boolComponentes"));
        }
        //Invocación a la Carga de los Indicadores de Verificación asociados a Tipo de Proyecto/Producto
        //luego de Inicializar la Clase
        int nn = 0;
        recargar_componentes();
        int n1 = 0;
    }

    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here

        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("IndicadoresdeVerificacion Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }

    // </editor-fold>
    // Perform application initialization that must complete
    // *after* managed components are initialized
    // TODO - add your own initialization code here
    }

    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }

    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {
    }

    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }
    private String prueba = "";

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected SessionBean1 getSessionBean1() {
        return (SessionBean1) getBean("SessionBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected RequestBean1 getRequestBean1() {
        return (RequestBean1) getBean("RequestBean1");
    }

    public void botonGuardar() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        boolean boolError = false;
        IndicadoresVO indicadoresVO = new IndicadoresVO();
        IndicadoresBO indicadoresBO = new IndicadoresBO();
        String nombreIndicador = "", idCriterio = "", peso = "", idTipoProyecto = "", idTipoProducto = "", requerido = "";
        //  String prueballego=
        String aux = "", aux1 = "";
        prueba = (String) radioButtonGroup1DefaultOptions.getSelectedValue();

        Object opci = new Object();
        opci = checkbox1.getValue();
        java.lang.Boolean sino = (java.lang.Boolean) opci;
        boolean bb = (boolean) sino;

        if (opci.equals(true)) {
            requerido = "S";
        } else if (opci.equals(false)) {
            requerido = "N";
        }

        try {
            if (prueba == null) {
                boolError = true;
                error("Por favor digíte los campos requeridos.");

            } else if (prueba.equals("tipoProyecto")) {

                nombreIndicador = (String) areaItem1.getValue();
                idCriterio = (String) listboxCriterio1.getValue();
                peso = (String) areaPeso1.getValue();
                idTipoProyecto = (String) listboxTipoProyecto1.getValue();

                if (idCriterio.equals("0")) {

                    boolError = true;
                    error("Por favor seleccione un criterio de evaluación.");

                }

                if (nombreIndicador == null || nombreIndicador.equals("")) {
                    boolError = true;
                    error("Por favor digite el nombre del indicador.");

                }
                if (peso == null || peso.equals("")) {
                    boolError = true;
                    error("Por favor digite el peso del indicador.");

                } else {
                    if (!esNumericoRegex(peso)) {
                        boolError = true;
                        error("El peso solo permite valores numéricos.");
                    }
                }
                indicadoresVO.setNombreItem(nombreIndicador);
                indicadoresVO.setId_criterio(idCriterio);
                indicadoresVO.setPeso(peso);
                indicadoresVO.setIdtipoProyecto(idTipoProyecto);
                indicadoresVO.setRequerido(requerido);

                if (boolError != true) {
                    aux1 = indicadoresBO.crearItemProyecto(indicadoresVO);
                    info(aux1);
                    //Invocación a la Carga de los Indicadores de Verificación  asociados a Tipo de Proyecto
                    //luego de Almacenar
                    recargar_componentes();
                    this.setRenderComponentes(false);
                    this.getSession().setAttribute("boolComponentes", this.isRenderComponentes());
                    listboxCriterio1.setValue("0");
                    int qq = 0;
                }

            } else if (prueba.equals("tipoProducto")) {

                nombreIndicador = (String) areaItem1.getValue();
                idCriterio = (String) listboxCriterio1.getValue();
                peso = (String) areaPeso1.getValue();
                idTipoProducto = (String) listboxTipoProducto1.getValue();

                if (nombreIndicador == null || nombreIndicador.equals("")) {
                    boolError = true;
                    error("Por favor digite el nombre del indicador.");
                //return null;
                }
                if (peso == null || peso.equals("")) {
                    boolError = true;
                    error("Por favor digite el peso del indicador.");

                } else {
                    if (!esNumericoRegex(peso)) {
                        boolError = true;
                        error("El peso solo permite valores numéricos.");
                    }
                }
                indicadoresVO.setNombreItem(nombreIndicador);
                indicadoresVO.setId_criterio(idCriterio);
                indicadoresVO.setPeso(peso);
                indicadoresVO.setIdTipoProducto(idTipoProducto);
                indicadoresVO.setRequerido(requerido);
                if (boolError != true) {
                    aux1 = indicadoresBO.crearItemProducto(indicadoresVO);
                    info(aux1);
                    //Invocación a la Carga de los Indicadores de Verificación  asociados a Tipo de Producto
                    //luego de Almacenar
                    recargar_componentes();
                    this.setRenderComponentes(false);
                    this.getSession().setAttribute("boolComponentes", this.isRenderComponentes());
                    listboxCriterio1.setValue("0");
                    int qq = 0;
                }
            } else {
                error("Por favor digíte los campos requeridos.");

            }

        //  requerido=(String)checkbox1.getValue();

        // tabCategoriaProducto.(nombreCategoProducto);
        //  listaCategoria.commitChanges();

        } catch (ControlException ce) {
            error("Error al crear la categoria.");
            ce.printStackTrace();
        //listaCategoria.revertChanges();
        }

    }

    private boolean esNumericoRegex(String numero) {
        Pattern p = Pattern.compile("[0-9]+");
        Matcher m = p.matcher(numero);
        return m.matches();
    }

    public String buttonCrear_action() {

        this.setRenderComponentes(true);
        this.getSession().setAttribute("boolComponentes", this.isRenderComponentes());
        return null;

    }
    private String nombreindicadores = "";
    private List<IndicadoresVO> listaIndicador = new ArrayList<IndicadoresVO>();
    private List<IndicadoresVO> listIndiPro = new ArrayList<IndicadoresVO>();
    private IndicadoresVO indicadoresVO = new IndicadoresVO();
    private IndicadoresBO indicadoresBO = new IndicadoresBO();

    public String buttonConsuIndicadores_action() {

        this.setRenderComponentes(false);
        this.getSession().setAttribute("boolComponentes", this.isRenderComponentes());
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        String aux = "";
        long idCriterio = 0;
        gridPanelTabla.setRendered(true);
        try {
            idCriterio = Long.parseLong(listboxCriterio1.getValue().toString());

            //Consulta tipo de proyectos (MODIFICADO)
            ListaIndicadoresProyectos listaIndicadoresProyectos = (ListaIndicadoresProyectos) getSessionBean1().getListaIndicaProyectos();
            List<IndicadoresVO> l1 = listaIndicadoresProyectos.getListaIndicadores();
            l1.clear();
            listaIndicador = new ArrayList<IndicadoresVO>();
            listaIndicador = indicadoresBO.consultarIndicadoresProyecto(indicadoresVO, idCriterio);
            getSessionBean1().addListaIndicadoresProyectos(listaIndicador);

            //Consulta tipo de productos (MODIFICADO)
            ListaIndicadoresProductos listaIndicadoresProductos = (ListaIndicadoresProductos) getSessionBean1().getListaIndicaProductos();
            List<IndicadoresVO> l2 = listaIndicadoresProductos.getListaIndicadores();
            l2.clear();
            listIndiPro = new ArrayList<IndicadoresVO>();
            listIndiPro = indicadoresBO.consultarIndicadoresProducto(indicadoresVO, idCriterio);

            getSessionBean1().addListaIndicadoresProductos(listIndiPro);

        } catch (ControlException ce) {
            error("Error al consultar el grupo de investigación.");
            ce.getStackTrace();
        }
        return null;
    }

    //Métodos de Carga de los Indicadores de Verificación luego de
    //Almacenar/Actualizar
    public void recargar_componentes()
    {
        //this.setRenderComponentes(false);
        //this.getSession().setAttribute("boolComponentes", this.isRenderComponentes());
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        String aux = "";
        long idCriterio = 0;
        //gridPanelTabla.setRendered(true);
        try {
            idCriterio = Long.parseLong("0");

            //Consulta tipo de proyectos
            listaIndicador = new ArrayList<IndicadoresVO>();
            listaIndicador = indicadoresBO.consultarIndicadoresProyecto(indicadoresVO, idCriterio);
            getSessionBean1().addListaIndicadoresProyectos(listaIndicador);

            //Consulta tipo de productos
            listIndiPro = new ArrayList<IndicadoresVO>();
            listIndiPro = indicadoresBO.consultarIndicadoresProducto(indicadoresVO, idCriterio);

            getSessionBean1().addListaIndicadoresProductos(listIndiPro);

        } catch (ControlException ce) {
            error("Error al consultar el grupo de investigación.");
            ce.getStackTrace();
        }
    }

    public String buttonModifiTipoProyecto_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        String idItem = "";
        String idTipoProyecto = "";
        idItem = (String) staticText1.getText();
        idTipoProyecto = (String) staticTextIdProyecto.getText();
        indicadoresVO = new IndicadoresVO();
        indicadoresVO.setIdItem(idItem);
        indicadoresVO.setIdtipoProyecto(idTipoProyecto);
        this.getSession().setAttribute("actualizar.indicadores" + "boolLista", false);
        getRequestBean1().setIndicadoresVO(indicadoresVO);
        //Invocación a la Carga de los Indicadores de Verificación asociados a Tipo de Proyecto/Producto
        //luego de Actualizar
        this.recargar_componentes();
        int qq = 0;
        return "actualizar";
    }

    public void checkbox1_processValueChange(ValueChangeEvent vce) {
    }

    public void radioButtonGroup1_processValueChange(ValueChangeEvent vce) {

        prueba = (String) vce.getNewValue();

        if (prueba.equals("tipoProyecto")) {

            listboxTipoProyecto1.setRendered(true);
            listboxTipoProducto1.setRendered(false);

        }
        if (prueba.equals("tipoProducto")) {

            listboxTipoProducto1.setRendered(true);
            listboxTipoProyecto1.setRendered(false);
        }

    }

    public String buttonEliminarProyec_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        String aux = "";
        RowKey rowToRemove = tableRowGroup1.getRowKey();

        ListaIndicadoresProyectos listaProyecto = getSessionBean1().getListaIndicaProyectos();
        try {
            indicadoresVO = new IndicadoresVO();
            indicadoresBO = new IndicadoresBO();
            nombreindicadores = (String) staticTextEliproyec.getValue();


            indicadoresVO.setNombreItem(nombreindicadores);
            aux = indicadoresBO.eliminarItem(indicadoresVO);
            listaProyecto.removeRow(rowToRemove);
            listaProyecto.commitChanges();
            info(aux);

        } catch (ControlException ce) {
            error("Error al consultar el grupo de investigación.");
            ce.getStackTrace();
            listaProyecto.revertChanges();
        }

        return null;
    }

    public String buttonEliProducto_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        String aux = "";
        RowKey rowToRemove = tableRowGroup2.getRowKey();

        ListaIndicadoresProductos listaProducto = getSessionBean1().getListaIndicaProductos();
        try {
            indicadoresVO = new IndicadoresVO();
            indicadoresBO = new IndicadoresBO();
            nombreindicadores = (String) staticTextElimiProdu.getValue();


            indicadoresVO.setNombreItem(nombreindicadores);
            aux = indicadoresBO.eliminarItem(indicadoresVO);
            if (aux.equals("NO PUDO SER ELIMINADO")) {
                error(aux);
            } else {
                listaProducto.removeRow(rowToRemove);
                listaProducto.commitChanges();
                info(aux);
            }

        } catch (ControlException ce) {
            error("Error al consultar el grupo de investigación.");
            ce.getStackTrace();
            listaProducto.revertChanges();
        }

        return null;
    }

    public void limpiar() {

        String limp = "";

        areaItem1.setValue(limp);
        areaPeso1.setValue(limp);



    }

    public String buttonModificarTipoProducto_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        String idItem = "";
        String idTipoProducto = "";
        idItem = (String) staticText4.getText();
        idTipoProducto = (String) staticTextIdProducto.getText();

        indicadoresVO = new IndicadoresVO();
        indicadoresVO.setIdItem(idItem);
        indicadoresVO.setIdTipoProducto(idTipoProducto);
        this.getSession().setAttribute("actualizar.indicadores" + "boolLista", true);
        getRequestBean1().setIndicadoresVO(indicadoresVO);

        return "actualizar";
    }

    public String tab1_action() {
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        return null;
    }

    public String buttonVolver_action() {
        this.setRenderComponentes(false);
        this.getSession().setAttribute("boolComponentes", this.isRenderComponentes());
        // TODO: Process the action. Return value is a navigation
        // case name where null will return to the same page.
        return "volver_Indica";
    }
}

